package com.zr.dao;
/**
 * 获取功能的dao层
 */
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.zr.util.JDBCUtil;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class FuncDao {
	/**
	 * 通过id获取单一功能json数据格式
	 * @param parentId
	 * @return
	 */
	public JSONArray getFuncById(int parentId) {
		JSONArray js=new JSONArray();
		String sql="select * from func where parentid=?";
		Connection con=JDBCUtil.getJDBConnection();
		try {
			PreparedStatement pst=con.prepareStatement(sql);
			pst.setInt(1, parentId);
			ResultSet rs=pst.executeQuery();
			while (rs.next()) {
				JSONObject jsobj=new JSONObject();
				jsobj.put("id", rs.getInt("fid"));
				jsobj.put("text",rs.getString("fname"));
				jsobj.put("state", rs.getString("fstate"));
				JSONObject attrObj=new JSONObject();
				attrObj.put("url", rs.getString("fpath"));
				jsobj.put("attributes", attrObj);
				js.add(jsobj);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			JDBCUtil.closedConnection(con);
		}
		return js;
	}
	/**
	 * 获取所有的功能变为对应的json格式
	 * @param parentId
	 * @return easyUI树形需要的json格式
	 */
	public JSONArray getAllFuncById(int parentId) {
		JSONArray js=this.getFuncById(parentId);
		for (int i = 0; i < js.size(); i++) {
			JSONObject jsObj=js.getJSONObject(i);
			if ("open".equals(jsObj.get("state"))) {
				continue;
			}else {
				jsObj.put("children", getAllFuncById(Integer.parseInt(jsObj.getString("id"))));
			}
		}
		return js;
	}
}
